The present invention relates to a firmware controlled system and a method for updating firmware of the firmware controlled system.
FIG. 1 shows a firmware controlled system 100 for performing at least one key function and at least one normal function. The system 100 can be a power management system for providing power to a load 102, for example. The at least one key function of the system 100 includes one of a real-time control function, a critical system protection function, a system boot function, etc., and the at least one normal function of the system 100 includes one of a housekeeping function, a low priority communication function, a system initialization function, etc. The system 100 is controlled by firmware 104 stored in a memory 106 and executed by a processor 108.
FIG. 2 shows a structure of the firmware 104 in the system 100. The firmware 104 includes firmware data 110, a set of non-programmable code 112 for performing the at least one key function, and a set of programmable code 114 for performing the at least one normal function. The set of non-programmable code is updated during firmware updating.
FIG. 3 shows a flow chart of a conventional method 200 of updating the firmware 104 of FIG. 1. Upon receipt of a firmware updating request at step 202, at step 204, the system 100 is required to be powered down or bypassed. At step 206, new firmware is stored in the memory 106, overwriting the firmware 104. After the new firmware is stored in the memory 106 at step 208, at step 210 the system 100 is reset to make sure that the new firmware operates properly. However, powering down and resetting the power management system 100 bring risk and high cost for continuous load operation requirements, especially for a critical load, such as a data server, medical equipment, traffic dispatching system, etc. It is therefore desirable to find a method for updating firmware in real-time to reduce the cost of redundant backup system investment.